1. Field of the Invention
This invention relates generally to the field of artificial intelligence, and more particularly to expert systems. In particular, an architecture for providing embedded expert systems is described.
2. Background Information
The use of expert systems in various industries, such as banking, insurance, manufacturing, aerospace, etc., has increased dramatically since tools for creating and consulting expert systems became commercially available in recent years. These prior art tools, of which Expert Systems Environment, available commercially from IBM Corporation, is an example, share the property of being standalone programs operating in an environment in which only one consultation at a time could be performed.
In order to realize the full benefits of expert systems technology, however, it is desirable to have an expert system which can be accessed in a variety of different manners. For instance, one may desire to exploit expert systems technology in a previously existing computer application, such as insurance underwriting. In the insurance underwriting example, a knowledge engineer would interview an expert underwriter, gleaning the knowledge which he uses when determining whether to accept or reject policies. Instead of spending the time to write procedural programs to do all that, the knowledge engineer can put that expert knowledge into a knowledge base as rules and facts and achieve significant increases in productivity and maintainability of the system. Since the processing of insurance applications requires complex application programs, as well as expert systems, system performance requires the expert system to be embedded in, or callable from, the application programs.
Many large users of expert systems have very integrated programming systems that have been developed at great expense to satisfy their own business requirements. Now, these customers desire to utilize expert systems processing behind the scenes. While it may be possible to use standalone expert systems, having to log off and log on again from the application that is running is inconvenient, at best.
Additionally, it is preferable to deliver expert systems capability through the same end-user application system, often without the user even knowing that an expert system is being consulted. Also, some customers have significant investment in the systems they have built and in the data that is stored in their systems. They want to start taking advantage of expert systems as an integrated tool to make use of the wealth of data already obtained. An expert system consultation is like any other application; you don't want to have a user enter data that is already in the system. By integrating expert systems into the users preexisting computer system, the preexisting data can be made accessible, and the end-user can access it through the normal network facilities as defined for the rest of their applications.
There are several problems that must be solved in order to integrate an expert system capability into existing application programs. First, you must get access to data that is already in the user's computer system. Data in many database management systems is not readily available, since different systems have unique rules for access, maintenance, integrity and backout, etc.
Second, it is necessary to develop an expert system that can function in different environments, without writing it many times, or writing many different interfaces. Each of these different software environments has its own set of constraints, rules, etc. In order to truly implement an embedded expert system, it is required that the expert systems be architected to be compatible with all existing environments that will be utilized.